package com.amtf.datafile3;

import java.util.List;

public interface DataRecord {
	public DataTableDefinition getDefinition();

	public DataField get(int index);

	public DataField get(String name);

	public DataField[] getFields();

	public Object getValue(int index);

	public Object getValue(String name);

	public Object[] getValues();

	public String[] renderValues();

	public String getFieldName(int index);

	public String[] getFieldNames();

	public int getFieldCount();

	public int getFieldIndex(String name);

	// public DataField set(int index, DataField value);

	// public DataField parse(int index, Object value) throws DataException;

	// public DataField set(String name, DataField value);

	// public DataField parse(String name, Object value) throws DataException;

	public DataRecord parse(Object[] fieldValues) throws DataException;

	public DataField set(String name, Object value) throws DataException;

	public DataField set(int index, Object value) throws DataException;

	public DataRecord set(Object[] fieldValues) throws DataException;

	public void validate();

	public boolean isValid();

	public List<String> getErrors();

	public void appendError(String message);

	public void clearErrors();

	// public DataRecord clone();

	public String toString();

	public boolean equals(DataRecord obj);

	// public DataRecord parse(Object record);

}
